/**************************************************START OF FILE*****************************************************/




#ifndef HH__XAPP_CONFIG__HH
#define HH__XAPP_CONFIG__HH



/*------------------------------------------------------------------------------------------------------------------
includes
*/
#include <stdint.h>
#include "FreeRTOS.h"
#include "task.h"


/*------------------------------------------------------------------------------------------------------------------
Macros
*/
typedef struct 
{
    TaskFunction_t const func;                //函数指针
    const char* const name;                   //名称
    const configSTACK_DEPTH_TYPE stackDepth;  //任务栈大小
    void * const userPara;                    //用户参数
    UBaseType_t priority;                     //优先级
    TaskHandle_t * const handle;              //句柄
}RtosTaskManage_t;

/*------------------------------------------------------------------------------------------------------------------
所有任务的优先级、栈大小定义、任务句柄。(任务优先级值越大，优先级越高)
*/
//StartTask 操作系统启动任务
#define TASK_PRIORITY_StartTask     4
#define TASK_STACK_SIZE_StartTask   (512U)
extern TaskHandle_t Handle_StartTask;

//GUI显示任务
#define TASK_PRIORITY_IOScanTask     2
#define TASK_STACK_SIZE_IOScanTask   (512U)

//GUI显示任务
#define TASK_PRIORITY_GuiMainTask     3
#define TASK_STACK_SIZE_GuiMainTask   (1024U)

typedef struct
{
    char  version[7];  
    char  productName[32]; //产品名称
    char  date[16];
    char  time[16];
}_project_version_struct_t;   //工程版本信息  

/*------------------------------------------------------------------------------------------------------------------
内存映射
*/
//内存连接区域定义
#define  ATTRIBUTE_SDRAM_SECTION       __attribute__((section("sdram_data")))    //自定义自由区域
#define  ATTRIBUTE_OCRAM_SECTION       __attribute__((section("ocram_data")))    //自定义自由区域

//#define  ATTRIBUTE_SDRAM_0x8010_0000   __attribute__((section(".ARM.__at_0x80100000")))
//#define  ATTRIBUTE_SDRAM_0x8020_0000   __attribute__((section(".ARM.__at_0x80200000")))
//#define  ATTRIBUTE_SDRAM_0x8030_0000   __attribute__((section(".ARM.__at_0x80300000")))

#endif

/**************************************************END OF FILE**********************************************************/



